package com.erlang4j.internal.messages;

import com.ericsson.otp.erlang.OtpErlangObject;
import com.erlang4j.api.IBinding;

/**
 * This allows you to compose complex erlang objects from a mixture of java and Erlang objects,
 * <p>
 * example::
 * <ul>
 * <li>composer.compose("{P0,{command,P1,P2}}", pid, "value1", "value2");
 * <li>composer.composeFromBinding("{Pid,{command,Param1,Param2}}", <br>
 * &nbsp;&nbsp;binding("Pid", pid, "Param1", "value1", "Param2", "value2"));
 * </ul>
 * </p>
 * 
 * @author Phil Rice
 */
public interface IMessageComposer {
	OtpErlangObject composeFromBinding(String input, IBinding binding);

	OtpErlangObject compose(String input, Object... parameters);
}
